package main

import (
	"fmt"
	"math/rand"
	"time"
)

func producer(ch chan<- int) {
	for {
		ch <- rand.Intn(200) // 生产一个随机数，放到 channel 中
		time.Sleep(time.Second)
	}
}

func consumer(ch <-chan int) {
	for {
		v := <-ch // 从 channel 中取数据
		fmt.Printf("从队列中消费一个数据: %d\n", v)
	}
}

func main() {
	c5 := make(chan int, 1)
	go producer(c5)
	go consumer(c5)
	time.Sleep(10 * time.Second)
	fmt.Println("main 结束")
	// c4 := make(chan<- int, 1)
	// fmt.Printf("%v,len=%d,cap=%d\n", c4, len(c4), cap(c4))
	// c4 <- 42
	// <-c4 // 不能从一个只发送的 channel 接收数据

}
